springboot打包成jar和war有什么不同 您所在的位置:网站首页 广角镜头 定义 springboot打包成jar和war有什么不同

springboot打包成jar和war有什么不同

2023-06-23 20:28| 来源: 网络整理| 查看: 265

打包成Jar可以直接独立执行。能执行的原因是SpringBoot做了一些手脚, 它把jetty/tomcat也打进了Jar包里面,并且jar指向的main函数是SpringBoot规定的,默认就可以拉起jetty/tomcat容器的启动bootstrap。

打包成war是符合servlet标准的, 放到相应的servlet容器中即可执行。如jetty,tomcat,或者其他企业应用服务器中。

要说这两种的使用场景,

1,Jar运行是符合一般微服务风格的, 自启动,自包含。 需要提醒的是这个Jar其实是包含依赖Jar包的。 即除了打包本人项目的Jar,依赖的其他三方Jar包也被原封不动地打进来了。如果认为包过大,可以选择瘦身。打包的时候可选择拆包相关参数, 即可把依赖的所有Jar中的class抽取出来,然后打成一个Fat-Jar。例如项目仅仅引用了apache-commons中的StringUtil一个类,是没必要把其他类也打进包的。 因此, Jar形式更适合公有云上微服务容器部署(k8s),敏捷开发,快速建站,快速验证等场景。

2,war包是更传统的部署方式, 适合所有符合Servlet规范的容器部署。 这里可以向下兼容到相对传统和容器, 比如自研容器,或者企业应用服务器如jboss,websphere等。因此, 大型公司,大规模项目, 一般来说使用war包形式部署。 因为war可以和执行容器很好的解耦和配合。 大型公司的容器都是自维护和强化过的, 包含很多强力功能, 比如预热,优雅上下线, OSGI, 近端部署,监控采集, 强化自定义sidecar等等。同时呢, 因为Servlet规范的一贯性, 传统企业,银行等基础设施还重度依赖IOE采买, 那么war包可以轻松部署到这类JavaEE的企业级容器中。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有